#pragma once

#include "json.hpp"

using nlohmann::json;


namespace param {
  // 敌方颜色
  enum {
    RED, BLUE
  };
  constexpr int binary_thres = 87; // 二值化阈值
  constexpr double min_light_ratio = 1.3; // 最小灯条长宽比
  constexpr double max_light_ratio = 4; // 最大灯条长宽比
  constexpr double min_light_area = 120; // 最小灯条面积
  constexpr double max_light_area = 900; // 最大灯条面积
  constexpr double max_angle_diff = 10; // 最大角度差
  constexpr double min_armor_ratio = 1.4; // 最小装甲板长宽比
  constexpr double max_armor_ratio = 3; // 最大装甲板长宽比
  constexpr double max_armor_height_diff = 1.2; // 装甲板灯条长度最大可接受差异
  constexpr double max_area = 4000; // 最大装甲板面积
  constexpr double min_area = 700; // 最小装甲板面积
  constexpr double length_zoom_factor = 1.8; // 长度缩放比例
  constexpr double width_zoom_factor = 0.75; // 宽度缩放比例
  constexpr int target_width = 100; // 目标图像宽度
  constexpr int target_height = 100; // 目标图像高度
  constexpr double min_confidence_level = 2; // 置信度阈值
  constexpr double alpha = 4; // 对比度
  constexpr double beta = -30; // 亮度
  constexpr int svm_id[] = {2, 6, 7}; // 已有的 svm 模型编号
  constexpr int max_missing_count = 6; // 最大丢失次数
  constexpr double max_predict_distance = 0.7; // 最大预测误差距离 (m)
  constexpr double fps = 60.0; // 相机帧率
  constexpr double delta_t = 1.0 / fps; // 时间间隔
  extern json settings; // 设置文件
}